package org.dromara.system.mapper;

import org.apache.ibatis.annotations.Param;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.system.domain.PayOrder;
import org.dromara.system.domain.vo.PayOrderVo;
import org.dromara.system.domain.vo.chart.AccountMoneyVo;
import org.dromara.system.domain.vo.chart.AppReceiveVo;
import org.dromara.system.domain.vo.chart.GroupAccountLimitVo;
import org.dromara.system.domain.vo.chart.GroupTypeAccountLimitVo;

import java.util.List;
import java.util.Map;

/**
 * 订单Mapper接口
 *
 * @author Gavino
 * @date 2024-10-22
 */
public interface PayChartMapper {

    /**
     * 查询收款账号收款信息
     *
     * @param accountIds 收款账号ID列表
     * @param agentId    代理ID
     * @param endTime    结束时间
     */
    List<AccountMoneyVo> selectAccountReceive(@Param("accountIds") List<Long> accountIds, @Param("endTime") String endTime, @Param("agentId") Long agentId, @Param("supplierId") Long supplierId, @Param("managerId") Long managerId);

    /**
     * 查询轮询组额度统计
     *
     * @param groupIds 轮询组ID列表
     * @param agentId  代理ID
     * @return 结果
     */
    List<GroupAccountLimitVo> selectGroupAccountLimit(@Param("groupIds") List<Long> groupIds, @Param("agentId") Long agentId);

    /**
     * 查询轮询组额度统计
     *
     * @param groupId 轮询组ID列表
     * @param agentId  代理ID
     * @return 结果
     */
    List<GroupTypeAccountLimitVo> selectGroupTypeAccountLimit(@Param("groupId") Long groupId, @Param("agentId") Long agentId);

    /**
     * 查询应用收款统计
     *
     * @param appIds  应用ID列表
     * @param agentId 代理ID
     * @return 结果
     */
    List<AppReceiveVo> selectAppReceiveInfo(@Param("appIds") List<Long> appIds, @Param("endTime") String endTime, @Param("agentId") Long agentId, @Param("clientId") Long clientId, @Param("managerId") Long managerId);

}
